package com.ffs.persist;

/**
 * sql构建
 *
 * @author ffs80
 * @date 2022/4/9 10:06
 */
public interface SqlBuilder<T extends PersistTable> {

    /**
     * 插入参数构建
     */
    Object[] buildInsertParams(T data);

    /**
     * 更新参数构建
     */
    Object[] buildUpdateParams(T data);

    /**
     * 删除参数构建
     */
    Object[] buildDeleteParams(T data);

    /**
     * 插入sql构建
     */
    String buildCreateSql(String tableName);

    /**
     * 根据id查询sql构建
     */
    String buildSelectByIdSql(String tableName);

    /**
     * 插入语句构建
     */
    String buildInsertSql(String tableName);

    /**
     * 更新语句构建
     */
    String buildUpdateSql(String tableName);

    /**
     * 删除语句构建
     */
    String buildDeleteSql(String tableName);
}
